package com.info.zhiduoduo.admin.controller;

import com.info.zhiduoduo.admin.model.formbean.account.MakerLabelFormBean;
import com.info.zhiduoduo.admin.model.formbean.maker.*;
import com.info.zhiduoduo.admin.model.formbean.taxer.OpenTaxerFormBean;
import com.info.zhiduoduo.admin.service.MakerService;
import com.info.zhiduoduo.common.annotation.DependOnEntity;
import com.info.zhiduoduo.common.annotation.LogEntity;
import com.info.zhiduoduo.common.annotation.LogParameter;
import com.info.zhiduoduo.common.annotation.ZddLog;
import com.info.zhiduoduo.common.constants.SmartResult;
import com.info.zhiduoduo.common.constants.system.ZddLogType;
import com.info.zhiduoduo.common.formbean.BaseSimpleFormBean;
import com.info.zhiduoduo.repository.dto.maker.*;
import com.info.zhiduoduo.repository.entity.maker.*;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.io.IOException;

import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;

import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;

@Api(tags = "创客接口- ， ")
@RestController
@RequestMapping("/user")
public class MakerController {

	@Autowired
	MakerService makerService;

	@PostMapping("/all_info")
	public SmartResult getUserInfo(@RequestBody BaseSimpleFormBean<Integer> formBean) {
		return makerService.getUserInfo(formBean);
	}

	@ApiOperation(value = "审核列表", notes = "新增 相关的几个字段")
	@PostMapping("/verifying_list")
	public SmartResult<VerifyingMakerDto> getVerifyingList(@RequestBody BaseSimpleFormBean<MakerListFormBean> formBean) {
		return makerService.getVerifyingList(formBean);
	}

	@ApiOperation(value = "审核详情", notes = "新增 相关的几个字段")
	@PostMapping("/verifying_detail")
	public SmartResult<VerifyingMakerDto> getVerifyAccountDetail(@RequestBody BaseSimpleFormBean<Integer> formBean) {
		return makerService.getVerifyingDetail(formBean);
	}

	@ZddLog(type = ZddLogType.UPDATE,name = "verifyAccount",entities = @LogEntity(entity = MakerAuthRecord.class,parameters =
	@LogParameter(fields = "acctid",parameters = "formBean.reqdata.acctid")))
	@PostMapping("/verify_account")
	public SmartResult verifyAccount(@RequestBody BaseSimpleFormBean<VerifyMakerFormBean> formBean) {
		return makerService.verifyAccount(formBean);
	}

	@ApiOperation(value = "审核通过的创客列表", notes = "新增 相关的几个字段")
	@PostMapping("/verify_passed_list")
	public SmartResult getVerifyPassedList(@RequestBody BaseSimpleFormBean<MakerListFormBean> formBean) {
		return makerService.getVerifyPassedList(formBean);
	}

	@ZddLog(name = "开户工作室",entities = @LogEntity(entity = MakerStudio.class,parameters =
	@LogParameter(fields = "userid",parameters = "formBean.reqdata.userid")))
	@ApiOperation(value = "开户工作室", notes = "新增是否开通 工作室功能")
	@PostMapping("/create_studio")
	public SmartResult createStudio(@RequestBody BaseSimpleFormBean<CreateStudioFormBean> formBean) {
		return makerService.createStudio(formBean);
	}

	@ApiOperation(value = "开户中的工作室列表", notes = "新增 相关的几个字段")
	@PostMapping("/verifying_studio_list")
	public SmartResult<StudioBriefDto> getVerifyingStudioList(@RequestBody BaseSimpleFormBean<MakerListFormBean> formBean) {
		return makerService.getVerifyingStudioList(formBean);
	}

	@ZddLog(type = ZddLogType.UPDATE,name = "确认工作室开户完成",entities = @LogEntity(entity = MakerAccount.class,parameters =
	@LogParameter(fields = "userid",parameters = "formBean.reqdata.userid")))
	@PostMapping("/confirm_studio")
	public SmartResult confirmStudio(@RequestBody BaseSimpleFormBean<ConfirmStudioFormBean> formBean) {
		return makerService.confirmStudio(formBean);
	}

	@ApiOperation(value = "已开户的工作室列表", notes = "新增 相关的几个字段")
	@PostMapping("/confirmed_studio_list")
	public SmartResult<StudioBriefDto> confirmedStudioList(@RequestBody BaseSimpleFormBean<MakerListFormBean> formBean) {
		return makerService.getComfirmedStudioList(formBean);
	}

	@ZddLog(type = ZddLogType.UPDATE,name = "保存创客标签",entities = @LogEntity(entity = MakerAccount.class,parameters =
	@LogParameter(fields = "userid",parameters = "formBean.reqdata.userid")))
	@ApiOperation("保存创客标签")
	@PostMapping("/saveMakerAccountLabel")
	public SmartResult<MakerAlipayDto> saveMakerAccountLabel(@RequestBody @Valid BaseSimpleFormBean<MakerLabelFormBean> formBean) {
		return makerService.saveMakerAccountLabel(formBean);
	}

	@ApiOperation(value = "工作室详情", notes = "新增 相关的税率服务费率")
	@PostMapping("/studio_detail")
	public SmartResult getStudioDetail(@RequestBody BaseSimpleFormBean<Integer> formBean) {
		return makerService.getStudioDetail(formBean);
	}

	@ZddLog(type = ZddLogType.UPDATE,name = "editRealNameInfo",entities = @LogEntity(entity = Maker.class,parameters =
	@LogParameter(fields = "userid",parameters = "formBean.reqdata.userid")))
	@PostMapping("/edit_realname_info")
	public SmartResult editRealNameInfo(@RequestBody BaseSimpleFormBean<EditRealNameFormBean> formBean) {
		return makerService.editRealNameInfo(formBean);
	}

	@ZddLog(type = ZddLogType.UPDATE,name = "编辑工作室",entities = @LogEntity(entity = MakerStudio.class,parameters =
	@LogParameter(fields = "userid",parameters = "formBean.reqdata.userid")))
	@ApiOperation(value = "编辑工作室", notes = "新增 相关的税率服务费率设置")
	@PostMapping("/edit_studio")
	public SmartResult editStudio(@RequestBody BaseSimpleFormBean<EditStudioFormBean> formBean) {
		return makerService.editStudio(formBean);
	}

	@ZddLog(type = ZddLogType.DELETE,name = "删除未提交审核的创客",entities = @LogEntity(entity = Maker.class,parameters =
	@LogParameter(fields = "userid",parameters = "formBean.reqdata")))
	@PostMapping("/del_user")
	public SmartResult delUser(@RequestBody BaseSimpleFormBean<Integer> formBean) {
		return makerService.delUser(formBean);
	}

	@ZddLog(type = ZddLogType.CREATE,name = "创建创客账户",entities = @LogEntity(entity = Maker.class,parameters =
	@LogParameter(fields = "userid",parameters = "formBean.reqdata.userid")))
	@PostMapping("/create_account")
	public SmartResult createAccount(@RequestBody BaseSimpleFormBean<CreateAccountFormBean> formBean) {
		return makerService.createAccount(formBean);
	}

	@ZddLog(type = ZddLogType.UPDATE,name = "changeAccountState",entities = @LogEntity(entity = MakerAccount.class,parameters =
	@LogParameter(fields = "userid",parameters = "formBean.reqdata.userid")))
	@PostMapping("/change_account_state")
	public SmartResult changeAccountState(@RequestBody BaseSimpleFormBean<ChangeAccountStateFormBean> formBean) {
		return makerService.changeAccountState(formBean);
	}

	@ZddLog(name = "addDefaultTag")
	@PostMapping("/add_default_tag")
	public SmartResult addDefaultTag(@RequestBody BaseSimpleFormBean<String> formBean) {
		return makerService.addDefaultTag(formBean);
	}

	@PostMapping("/get_default_tag_list")
	public SmartResult getDefaultTagList(@RequestBody BaseSimpleFormBean formBean) {
		return makerService.getDefaultTagList(formBean);
	}

	@ZddLog(type = ZddLogType.DELETE,name = "标签-创客标签删除",entities = {
			@LogEntity(entity = MakerTag.class,parameters = @LogParameter(fields = "tagid",parameters = "formBean.reqdata")),
			@LogEntity(entity = Tag.class,parameters = @LogParameter(fields = "tagid",parameters = "formBean.reqdata"))})
	@PostMapping("/del_default_tag")
	public SmartResult delDefaultTag(@RequestBody BaseSimpleFormBean<Integer> formBean) {
		return makerService.delDefaultTag(formBean);
	}

	@ZddLog(type = ZddLogType.UPDATE,name = "创客删除InviteCode",entities = @LogEntity(entity = Maker.class,parameters =
	@LogParameter(fields = "userid",parameters = "formBean.reqdata.userid")))
	@PostMapping("/editInviteCode")
	public SmartResult editInviteCode(@RequestBody BaseSimpleFormBean<EditInviteCodeFormBean> formBean) {
		return makerService.editInviteCode(formBean);
	}

	/**
	 * 修改创客创客，企业，合伙人，是否接受 公告开关
	 */
	@ZddLog(type = ZddLogType.UPDATE, name = "修改创客、企业、合伙人是否接受 公告开关", entities = {
			@LogEntity(entity = Maker.class, parameters = @LogParameter(fields = "userid", parameters = "formBean.reqdata.userid"))})
	@PostMapping("/changeNoticeFlag")
	public SmartResult changeNoticeFlag(@RequestBody BaseSimpleFormBean<ChangeNoticeFlagFormBean> formBean) {
		return makerService.changeNoticeFlag(formBean);
	}

	@ZddLog(name = "工作室开税户")
	@ApiOperation("工作室开税户")
	@PostMapping("/openTaxAcct")
	public SmartResult openTaxAcct(@Valid @RequestBody BaseSimpleFormBean<OpenTaxAcctFormBean> formBean) {
		return makerService.openTaxAcct(formBean);
	}

	/**
	 * 工作室完税记录
	 */
	@ZddLog(name = "工作室完税记录")
	@PostMapping("/finishTax")
	public SmartResult finishTax(@Valid @RequestBody BaseSimpleFormBean<FinishTaxFromBean> formBean) {
		return makerService.finishTax(formBean);
	}

	@ApiOperation(value = "已开税户的工作室列表", notes = "新增 相关的几个字段")
	@PostMapping("/openTaxAcctList")
	public SmartResult<StudioBriefDto> openTaxAcctList(@RequestBody BaseSimpleFormBean<MakerListFormBean> formBean) {
		return makerService.getOpenTaxAcctList(formBean);
	}

	@ApiOperation(value = "下载已开税户工作室列表", tags = "下载excel")
	@GetMapping("downloadStudioTaxAcctList")
	public void downloadStudioTaxAcctList(HttpServletResponse response, MakerListFormBean reqdata) throws IOException {
		makerService.downloadStudioTaxAcctList(response, reqdata);
	}

	//创客解约
	@ZddLog(type = ZddLogType.UPDATE, name = "创客解约", entities = {
			@LogEntity(entity = Maker.class, parameters = @LogParameter(fields = "userid", parameters = "formBean.userid")),
			@LogEntity(entity = MakerAccount.class, dependOnEntities = @DependOnEntity(entity = Maker.class, fields = "userid",
					parameters = "userid"))})
	@PostMapping("/makerRescission")
	public SmartResult makerRescission(@RequestBody BaseSimpleFormBean<Integer> formBean) {
		return makerService.makerRescission(formBean);
	}

	@ApiOperation(value = "已解约工作室列表", notes = "新增 相关的几个字段")
	@PostMapping("/rescissionList")
	public SmartResult<StudioBriefDto> rescissionList(@RequestBody BaseSimpleFormBean<MakerListFormBean> formBean) {
		return makerService.getRescissionList(formBean);
	}

	@ZddLog(type = ZddLogType.UPDATE,name = "上传解约证书",entities = @LogEntity(entity = MakerStudio.class,parameters =
	@LogParameter(fields = "userid",parameters = "formBean.reqdata.userid")))
	@ApiOperation(value = "上传解约证书")
	@PostMapping("/uploadCancellationBook")
	public SmartResult uploadCancellationBook(@RequestBody BaseSimpleFormBean<UploadCancellationBookFormBean> formBean) {
		return makerService.uploadCancellationBook(formBean);
	}

	@ApiOperation("申请解约列表,支持分页")
	@PostMapping("/rescissionApplyList")
	public SmartResult<MakerRescissionApplyDto> rescissionApplyList(
			@Valid @RequestBody BaseSimpleFormBean<RescissionApplyListFormBean> formBean) {
		return makerService.getRescissionApplyList(formBean);
	}

	@ZddLog(type = ZddLogType.UPDATE,name = "处理注销申请",entities = @LogEntity(entity = MakerRescissionApply.class,parameters =
	@LogParameter(fields = "id",parameters = "formBean.reqdata.id")))
	@ApiOperation("处理注销申请")
	@PostMapping("/handleRescissionApply")
	public SmartResult handleRescissionApply(@Valid @RequestBody BaseSimpleFormBean<HandleRescissionApplyFormBean> formBean) {
		return makerService.handleRescissionApply(formBean);
	}

	@ZddLog(type = ZddLogType.CREATE,name = "创建注销申请",entities = @LogEntity(entity = MakerRescissionApply.class))
	@ApiOperation("处理注销申请")
	@PostMapping("/createRescissionApply")
	public SmartResult createRescissionApply(@Valid @RequestBody BaseSimpleFormBean<CreateRescissionApplyFormBean> formBean) {
		return makerService.createRescissionApply(formBean);
	}

	@ZddLog(type = ZddLogType.UPDATE,name = "创建注销申请",entities = @LogEntity(entity = MakerRescissionApply.class))
	@ApiOperation("提交注销申请")
	@PostMapping("/submitRescissionApply")
	public SmartResult submitRescissionApply(@Valid @RequestBody BaseSimpleFormBean<SubmitRescissionApplyFormBean> formBean) {
		return makerService.submitRescissionApply(formBean);
	}

	@ApiOperation("CEO处理提交注销申请")
	@PostMapping("/processRescissionApply")
	public SmartResult processRescissionApply(@RequestBody BaseSimpleFormBean<ProcessRescissionApplyFormBean> formBean) {
		return makerService.processRescissionApply(formBean);
	}

	@ZddLog(type = ZddLogType.UPDATE,name = " 创客开通 功能",entities = @LogEntity(entity = MakerStudio.class,parameters =
	@LogParameter(fields = "userid",parameters = "formBean.reqdata.userid")))
	@ApiOperation(value = " 创客开通 功能", notes = "如果已开通则仅设置服务费率")
	@PostMapping("/openEditTaxer")
	public SmartResult openEditTaxer(@RequestBody BaseSimpleFormBean<OpenTaxerFormBean> formBean) {
		return makerService.openTaxer(formBean);
	}

	@ZddLog(type = ZddLogType.QUERY,name = "工作室年检记录")
	@ApiOperation("工作室年检记录")
	@PostMapping("/annualCheck")
	public SmartResult annualCheck(@Valid @RequestBody BaseSimpleFormBean<AnnualCheckFromBean> formBean) {
		return makerService.annualCheck(formBean);
	}

	@ZddLog(name = "工作室年底汇算清缴记录")
	@ApiOperation("工作室年底汇算清缴记录")
	@PostMapping("/finalSettlement")
	public SmartResult finalSettlement(@Valid @RequestBody BaseSimpleFormBean<FinalSettlementFromBean> formBean) {
		return makerService.finalSettlement(formBean);
	}

	@ApiOperation("已工商认证的创客列表")
	@PostMapping("/getBusinessAuthenticationList")
	public SmartResult getBusinessAuthenticationList(@RequestBody BaseSimpleFormBean<MakerListFormBean> formBean) {
		return makerService.getBusinessAuthenticationList(formBean);
	}

	@ZddLog(type = ZddLogType.UPDATE,name = "上传工商认证图片",entities = @LogEntity(entity = MakerAccount.class,parameters =
	@LogParameter(fields = "userid",parameters = "form.reqdata.userid")))
	@ApiOperation("上传工商认证图片")
	@PostMapping("/saveBusinessAuthenticationImg")
	public SmartResult saveBusinessAuthenticationImg(@Valid @RequestBody BaseSimpleFormBean<BusinessAuthenticationFormBean> formBean) {
		return makerService.saveBusinessAuthenticationImg(formBean);
	}

	@ZddLog(type = ZddLogType.UPDATE,name = "驳回工商认证图片",entities = @LogEntity(entity = MakerAccount.class,parameters =
	@LogParameter(fields = "userid",parameters = "formBean.reqdata.userid")))
	@ApiOperation("驳回工商认证图片")
	@PostMapping("/rejectBusinessAuthenticationImg")
	public SmartResult rejectBusinessAuthenticationImg(@RequestBody BaseSimpleFormBean<RejectBusinessAuthenticationFormBean> formBean) {
		return makerService.rejectBusinessAuthenticationImg(formBean);
	}

	@ZddLog(type = ZddLogType.UPDATE,name = "编辑显示核心模块",entities = @LogEntity(entity = Maker.class,parameters =
	@LogParameter(fields = "userid",parameters = "formBean.reqdata.userid")))
	@ApiOperation("编辑显示核心模块")
	@PostMapping("/editCoreModule")
	public SmartResult editCoreModule(@RequestBody BaseSimpleFormBean<CoreModuleFormBean> formBean) {
		return makerService.editCoreModule(formBean);
	}

	@ZddLog(type = ZddLogType.UPDATE,name = "编辑创客的分佣计算开关状态",entities = @LogEntity(entity = Maker.class,parameters =
	@LogParameter(fields = "userid",parameters = "formBean.reqdata.userid")))
	@ApiOperation("编辑创客的分佣计算开关状态")
	@PostMapping("/editStudioBrokerageComputeState")
	public SmartResult editStudioBrokerageComputeState(@RequestBody BaseSimpleFormBean<StudioBrokerageComputeFormBean> formBean) {
		return makerService.editStudioBrokerageComputeState(formBean);
	}

	/**
	 * 查看政府审核状态
	 *
	 * @param formBean
	 * @return
	 */
	@PostMapping("/governmentExamineState")
	public SmartResult governmentExamineState(@RequestBody BaseSimpleFormBean<Integer> formBean) {
		return makerService.governmentExamineState(formBean);
	}

	@ZddLog(type = ZddLogType.UPDATE,name = "编辑 未审核该创客原因",entities = @LogEntity(entity = MakerAccount.class,parameters =
	@LogParameter(fields = "userid",parameters = "formBean.reqdata.userid")))
	@ApiOperation(value = "编辑 未审核该创客原因")
	@PostMapping("/editZddNoSuditReason")
	public SmartResult editZddNoSuditReason(@RequestBody BaseSimpleFormBean<EditZddNoAuditReasonFormBean> formBean) {
		return makerService.editZddNoSuditReason(formBean);
	}

	@ZddLog(type = ZddLogType.UPDATE,name = "修改创客开户地")
	@ApiOperation(value = "修改创客开户地")
	@PostMapping("/updateOpeningLocation")
	public SmartResult updateOpeningLocation(@RequestBody BaseSimpleFormBean<UpdateOpeningLocationFormBean> formBean) {
		return makerService.updateOpeningLocation(formBean);
	}

	@ZddLog(type = ZddLogType.UPDATE,name = "审核创客的签名，视频等信息，通过就注册个体户",entities = @LogEntity(entity = MakerAccount.class,parameters =
	@LogParameter(fields = "userid",parameters = "formBean.reqdata.userid")))
	@ApiOperation(value = "审核创客的签名，视频等信息，通过就注册个体户")
	@PostMapping("/examineMakerToBusinessInfo")
	public SmartResult examineMakerToBusinessInfo(@RequestBody BaseSimpleFormBean<AuditMakerInfoFormBean> formBean) {
		return makerService.examineMakerToBusinessInfo(formBean);
	}

	@ZddLog(type = ZddLogType.UPDATE,name = "编辑创客注册个体户需要的签名，视频等信息",entities = @LogEntity(entity = Maker.class,parameters =
	@LogParameter(fields = "userid",parameters = "formBean.reqdata.userid")))
	@ApiOperation(value = "编辑创客注册个体户需要的签名，视频等信息")
	@PostMapping("/editMakerToBusinessInfo")
	public SmartResult editMakerToBusinessInfo(@RequestBody BaseSimpleFormBean<EditMakerToBusinessFormBean> formBean) {
		return makerService.editMakerToBusinessInfo(formBean);
	}

	@ApiOperation(value = "查看创客注册个体户的签名，视频等信息")
	@PostMapping("/getMakerToBusinessInfo")
	public SmartResult<GetMakerToBusinessInfoDto> getMakerToBusinessInfo(@RequestBody BaseSimpleFormBean<Integer> formBean) {
		return makerService.getMakerToBusinessInfo(formBean);
	}

	@ApiOperation(value = "暂不处理的创客列表")
	@PostMapping("/getTemporarilyNotHandledList")
	public SmartResult getTemporarilyNotHandledList(@RequestBody BaseSimpleFormBean<TemporarilyNotHandledFormBean> formBean) {
		return makerService.getTemporarilyNotHandledList(formBean);
	}

	@ZddLog(type = ZddLogType.UPDATE,name = "编辑创客目前是否处理",entities = @LogEntity(entity = MakerAccount.class,parameters =
	@LogParameter(fields = "userid",parameters = "formBean.reqdata.userid")))
	@ApiOperation(value = "编辑创客目前是否处理")
	@PostMapping("/setMarkWhetherHandled")
	public SmartResult setMarkWhetherHandled(@RequestBody BaseSimpleFormBean<SetMakerWhetherHandledFormBean> formBean) {
		return makerService.setMarkWhetherHandled(formBean);
	}

	@ZddLog(type = ZddLogType.UPDATE,name = "改变工作室注册地-会新增创客数据",entities = @LogEntity(entity = Maker.class,parameters =
	@LogParameter(fields = "userid",parameters = "formBean.reqdata.userid")))
	@ApiOperation(value = "改变工作室注册地-会新增创客数据")
	@PostMapping("/changeStudioOpenAdress")
	public SmartResult changeStudioOpenAdress(@RequestBody BaseSimpleFormBean<ChangeStudioOpenAdressFormBean> formBean) {
		return makerService.changeStudioOpenAdress(formBean);
	}

	@ZddLog(type = ZddLogType.UPDATE,name = "上传注销凭证",entities = @LogEntity(entity = Maker.class,parameters =
	@LogParameter(fields = "userid",parameters = "formBean.reqdata.userid")))
	@ApiOperation(value = "上传注销凭证")
	@PostMapping("/addCancelVoucher")
	public SmartResult addCancelVoucher(@RequestBody BaseSimpleFormBean<MakerCancelVoucher> formBean) {
		return makerService.addCancelVoucher(formBean);
	}

	@ApiOperation(value = "专家团打标签详情")
	@PostMapping("/queryExpertLabel")
	public SmartResult queryExpertLabel(@RequestBody BaseSimpleFormBean<Integer> formBean) {
		return makerService.queryExpertLabel(formBean);
	}

	@ZddLog(type = ZddLogType.UPDATE,name = "专家团打标签修改",entities = @LogEntity(entity = MakerAccount.class,parameters =
	@LogParameter(fields = "userid",parameters = "formBean.reqdata.userid")))
	@ApiOperation(value = "专家团打标签修改")
	@PostMapping("/updateExpertLabel")
	public SmartResult updateExpertLabel(@RequestBody BaseSimpleFormBean<UpdateExpertLabelFormBean> formBean) {
		return makerService.updateExpertLabel(formBean);
	}

	@ApiOperation(value = "专家团打标签列表")
	@PostMapping("/queryExpertLabelTab")
	public SmartResult queryExpertLabelTab(@RequestBody BaseSimpleFormBean<QueryExpertLabelTabFormBean> formBean) {
		return makerService.queryExpertLabelTab(formBean);

	}

	@ApiOperation(value = "查询对应的创客")
	@PostMapping("/queryMakerName")
	public SmartResult queryMakerName(@RequestBody BaseSimpleFormBean<String> formBean) {
		return makerService.queryMakerName(formBean);
	}

	@ZddLog(type = ZddLogType.UPDATE,name = "修改创客状态",entities = @LogEntity(entity = MakerAccount.class,parameters =
	@LogParameter(fields = "userid",parameters = "formBean.reqdata.userid")))
	@ApiOperation(value = "修改创客状态")
	@PostMapping("/updateMakerLonginType")
	public SmartResult updateMakerLonginType(@RequestBody BaseSimpleFormBean<UpdateMakerLonginTypeFormBean> formBean) {
		return makerService.updateMakerLonginType(formBean);
	}

	@ZddLog(type = ZddLogType.UPDATE,name = "增加上传委托定税的视频",entities = @LogEntity(entity = MakerStudio.class,parameters =
	@LogParameter(fields = "userid",parameters = "formBean.reqdata.userid")))
	@ApiOperation(value = "增加上传委托定税的视频", notes = "参数为视频文件保存路径，通过/common/uploadFile接口上传视频，获取保存路径")
	@PostMapping("/saveEntrustTaxVideo")
	public SmartResult saveEntrustTaxVideo(@RequestBody BaseSimpleFormBean<SaveEntrustTaxVideoFormBean> formBean) {
		return makerService.saveEntrustTaxVideo(formBean);
	}

	@ZddLog(type = ZddLogType.UPDATE,name = "审核芜湖创客定税视频",entities = @LogEntity(entity = MakerStudio.class,parameters =
	@LogParameter(fields = "userid",parameters = "formBean.reqdata.userid")))
	@ApiOperation("审核芜湖创客定税视频")
	@PostMapping("/verifyEntrustTaxVideo")
	public SmartResult verifyEntrustTaxVideo(@Valid @RequestBody BaseSimpleFormBean<VerifyEntrustTaxVideoFormBean> formBean) {
		return makerService.verifyEntrustTaxVideo(formBean);
	}

	@ApiOperation("查询所有友好创客")
	@PostMapping("/queryFriendlyMakerList")
	public SmartResult queryFriendlyMakerList(@RequestBody BaseSimpleFormBean<FriendlyMakerListFormBean> formBean) {
		return makerService.queryFriendlyMakerList(formBean);
	}

	@ApiOperation("查询所有创客列表")
	@PostMapping("/listMakers")
	public SmartResult<MakerStatusInfoDto> listMakers(@RequestBody BaseSimpleFormBean<AllMakerListFormBean> formBean) {
		return makerService.listMakers(formBean);
	}

	@ApiOperation("导出所有创客列表")
	@GetMapping("/exportMakers")
	public void exportMakers(HttpServletResponse response, AllMakerListFormBean reqdata)  {
		makerService.exportMakers(response, reqdata);
	}

	@ApiOperation("查询创客所有年度交易额")
	@PostMapping("/listYearAmounts")
	public SmartResult<MakerYearAmountDto> listYearAmounts(@RequestBody BaseSimpleFormBean<Integer> formBean) {
		return makerService.listYearAmounts(formBean);
	}

	@ApiOperation("导出已完成工作室开户创客列表")
	@GetMapping("/exportConfirmedStudio")
	public void exportConfirmedStudio(HttpServletResponse response,MakerListFormBean formBean,Integer userid){
		makerService.exportConfirmedStudio(response,formBean,userid);
	}

	@ApiOperation("特殊费率")
	@PostMapping("/specialRates")
	public SmartResult<SpecialRatesDto> specialRates(@RequestBody BaseSimpleFormBean<Integer> formBean) {
		return makerService.specialRates(formBean);
	}

	@ApiOperation("已开银行公户的创客列表")
	@PostMapping("/bankCorporateMaker")
	public SmartResult<BankCorporateMakerDto> bankCorporateMaker(@RequestBody BaseSimpleFormBean<BankCorporateMakerFormBean> formBean) {
		return makerService.bankCorporateMaker(formBean);
	}
	@ApiOperation("公户是否平台托管")
	@PostMapping("/platformHosting")
	public SmartResult platformHosting(@RequestBody BaseSimpleFormBean<PlatformHostingFormBean> formBean) {
		return makerService.platformHosting(formBean);
	}

	@ApiOperation("查看托管变更记录")
	@PostMapping("/viewManagedChangeLog")
	public SmartResult<CustodianModificationRecord> viewManagedChangeLog(@RequestBody BaseSimpleFormBean<Integer> formBean) {
		return makerService.viewManagedChangeLog(formBean);
	}

	@ApiOperation("添加创客状态原因")
	@PostMapping("/addMakerStatusReason")
	public SmartResult addMakerStatusReason(@RequestBody BaseSimpleFormBean<MakerStatusReason> formBean) {
		return makerService.addMakerStatusReason(formBean);
	}
	@ZddLog(type = ZddLogType.UPDATE,name = "复制已实名创客",entities = @LogEntity(entity = Maker.class,parameters =
	@LogParameter(fields = "userid",parameters = "formBean.reqdata.userid")))
	@ApiOperation(value = "复制已实名创客")
	@PostMapping("/copyTheRealName")
	public SmartResult copyTheRealName(@RequestBody BaseSimpleFormBean<ChangeStudioOpenAdressFormBean> formBean) {
		return makerService.copyTheRealName(formBean);
	}

	@ApiOperation("根据idno查找创客")
	@PostMapping("/findUseridByIdno")
	public SmartResult<FindMakerDto> findUseridByIdno(@RequestBody BaseSimpleFormBean<String> formBean) {
		return makerService.findUseridByIdno(formBean);
	}

	@ApiOperation("根据名称查找创客")
	@PostMapping("/findMakersByName")
	public SmartResult<FindMakerByNameDto> findMakersByName(@RequestBody BaseSimpleFormBean<String> formBean) {
		return makerService.findMakersByName(formBean);
	}

	@ApiOperation("根据企业ID压缩身份证文件")
	@GetMapping("/compressIdNoFileById")
	public void compressIdNoFileById(HttpServletResponse response, @RequestParam(name = "companyId") int companyId) throws IOException {
		makerService.compressIdNoFileById(response,companyId);
	}

}
